package com.sky.config;

import com.sky.properties.AliOssProperties;
import com.sky.utils.AliOssUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Description 配置OSS相关的Bean
 * @Author shh
 * @Date 2025-10-05
 */
@Slf4j
@Configuration//配置类，用于配置OSS相关的Bean,Configuration注解表示这是一个配置类,关于Configuration注解的主要作用：
//1.将该类标识为一个配置类，用于配置Spring容器中的Bean
//2.可以在该类中定义Bean的创建方法，通过@Bean注解将方法返回的对象注册到Spring容器中
//3.可以在该类中使用@Autowired注解自动注入其他Bean,例如：
//@Autowired
//private SomeOtherBean someOtherBean;
public class OssConfiguration {

    @Bean//Bean注解表示这是一个Bean的创建方法,通过@Bean注解将方法返回的对象注册到Spring容器中
    public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties) {
        log.info("开始创建OSS客户端对象");
        AliOssUtil aliOssUtil = new AliOssUtil(aliOssProperties.getEndpoint(),//访问域名
                aliOssProperties.getAccessKeyId(),//访问密钥ID
                aliOssProperties.getAccessKeySecret(),//访问密钥密码
                aliOssProperties.getBucketName());//存储空间名称
        log.info("OSS客户端对象创建成功:{}", aliOssUtil);
        return aliOssUtil;
    }
}
